// 食物对象
(function (window, undefined) {
  // 食物类
  class Food {
    // 构造函数
    constructor(father, obj) {
      // 判断用户输入数据是否符合要求
      obj = obj instanceof Object ? obj : {}
      // 设置宽度、高度、食物允许的最大left、最大top、食物left、top、食物背景颜色
      this.width = obj.width || 10
      this.height = obj.height || 10
      this.maxX = father.clientWidth / this.width - 1;
      this.maxY = father.clientHeight / this.height - 1;
      this.x = obj.x || tools.getRandomNumber(0, this.maxX)
      this.y = obj.y || tools.getRandomNumber(0, this.maxY)
      this.backgroundColor = obj.backgroundColor || 'skyblue'
    }
    // 原型方法
    // 食物渲染方法
    render(father) {
      // 创建食物元素
      this.me = document.createElement('span')
      // 设置食物行内样式
      this.me.style.position = 'absolute'
      this.me.style.width = `${this.width}px`
      this.me.style.height = `${this.height}px`
      this.me.style.left = `${this.x*this.width}px`
      this.me.style.top = `${this.y*this.height}px`
      this.me.style.borderRadius = `50%`
      this.me.style.backgroundColor = this.backgroundColor
      // 把食物添加到舞台
      father.appendChild(this.me);
    }
    // 食物位置更新方法，调用工具
    upDate() {
      this.x = tools.getRandomNumber(0, this.maxX)
      this.y = tools.getRandomNumber(0, this.maxY)
    }
    // 删除食物方法
    delete(father) {
      father.removeChild(this.me);
    }
  }
  // 把食物托管到window
  window.Food = Food
})(window, undefined)